package features.advance.nowcoder.meituan;

/**
 *  题目描述
 *  难度：简单
 * 有一个长为n的数组A，求满足0≤a≤b<n的A[b]-A[a]的最大值。
 *
 * 给定数组A及它的大小n，请返回最大差值。
 *
 * 测试样例：
 * [10,5],2
 * 返回：0
 *
 * @author LIN
 * @date 2021-05-19
 */
public class MT1 {

    public static void main(String[] args) {
        int[] A = {10,5};
        int n = 2;
        LongestDistance longestDistance = new LongestDistance() {
            @Override
            public int getDis(int[] A, int n) {
                int dis = 0;
                int min = A[0];
                for (int i = 1; i< n ; i++){
                    if(min > A[i]){
                        // 取i之前的最小值，方法很巧妙啊
                        min = A[i];
                    }else if (A[i] - min > dis){
                        dis = A[i] - min;
                    }
                }
                return dis;
            }
        };
        longestDistance.getDis(A, n);
    }
}
class LongestDistance {
    public int getDis(int[] A, int n) {
        // write code here
        int max = A[0];
        for(int i=0;i<n;i++){
            for(int j=i;j<n;j++){
                int res = A[j] - A[i];
                max = Math.max(res, max);
            }
        }
        return max;
    }
}